package com.koi.plus.mapper.system;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.koi.model.bo.element.CascaderStringBo;
import com.koi.model.vo.system.SysDeptVo;
import com.koi.pojo.system.SysDept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author ･ᴗ･
 * @description [部门表-数据库连接层]
 */
@Mapper
public interface SysDeptMapper extends BaseMapper<SysDept> {

    /**
     * @description [查询用户拥有的部门权限-AOP]
     * @author ･ᴗ･
     */
    List<Long> listDeptIdData(Long userId);

    /**
     * @description [查询分配当前用户的部门数据]
     * @author ･ᴗ･
     */
    List<SysDept> listSysDept(@Param("vo") SysDeptVo vo);

    /**
     * @description [部门级联下拉框]
     * @author ･ᴗ･
     */
    List<CascaderStringBo> cascaderList();

    /**
     * @description [根据用户拥有的角色ID查询部门权限数据]
     * @author ･ᴗ･
     */
    List<SysDept> listDeptIdsByRoleId(Long roleId);

    /**
     * @description [删除该角色拥有的部门权限数据]
     * @author ･ᴗ･
     */
    void deleteDeptIdsByRoleId(Long roleId);

    /**
     * @description [保存角色部门权限数据]
     * @author ･ᴗ･
     */
    boolean saveRoleDept(@Param("roleId") Long roleId, @Param("deptIds") List<String> deptIds);

}
